<?php


namespace fq\request;

class  Loader
{
	// 解析命名空间的路径
	public static $vendorMap = [
		'request' => __DIR__,
	];

	public function register()
	{
		spl_autoload_register('self::autoload'); // 注册自动加载
	}

	// 自动加载器
	public static function autoload($class)
	{
		$file = self::findFile($class);
		if (file_exists($file)) {
			self::includeFile($file);
		}
	}

	// 解析文件路径
	private static function findFile($class)
	{
		$class = str_replace('fq\\', '', $class);
		$vendor = substr($class, 0, strpos($class, '\\')); // 顶级命名空间
		$vendorDir = self::$vendorMap[$vendor]; // 文件基目录
		$filePath = substr($class, strlen($vendor)) . '.php'; // 文件相对路径
		return strtr($vendorDir . $filePath, '\\', DIRECTORY_SEPARATOR); // 文件标准路径
	}

	// 引入文件
	private static function includeFile($file)
	{
		if (is_file($file)) {
			include $file;
		}
	}
}
